/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.dew.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import java.util.logging.Level;
import java.util.logging.Logger;
import pe.edu.upc.dew.model.Actividad;
import pe.edu.upc.dew.model.Paquete;
import pe.edu.upc.dew.util.JdbcUtils;

/**
 *
 * @author Juliana
 */
public class PaqueteDaoImpl implements PaqueteDao {


    @Override
    public List<Paquete> obtenerPaquetes() {
      List<Paquete> paquetes = new ArrayList<Paquete>();

      try {
            Connection conn = JdbcUtils.getConnection();
            Statement st = conn.createStatement();
            Connection conn1 = JdbcUtils.getConnection();
            Statement st1 = conn1.createStatement();


            //obteniendo el ultimo padre registrado
            ResultSet rs = st.executeQuery("SELECT COD_PAQUETE,NOMBRE,DESCRIPCION,COSTO,MESES "
                    + "FROM GIMNASIO_DEW.PAQUETE;");
            Paquete paquete;
            while(rs.next()){
                paquete = new Paquete();
                paquete.setCodigo(rs.getInt("COD_PAQUETE"));
                paquete.setNombre(rs.getString("NOMBRE"));
                paquete.setDescripcion(rs.getString("DESCRIPCION"));
                paquete.setMeses(rs.getInt("MESES"));
                paquete.setCosto(rs.getDouble("COSTO"));

                paquetes.add(paquete);
            }
        } catch (SQLException ex) {
            Logger.getLogger(VentasDAOImpl.class.getName()).log(Level.SEVERE, null, ex);
        }catch (IllegalStateException iex){
            System.out.println("NO SE PUDO CONECTAR A LA BD:"+iex.getMessage());
        }


      return paquetes;
    }

     @Override
    public int registrarPaquete(Paquete paquete){
         int cod_paquete = 0;
         try {
            Connection conn = JdbcUtils.getConnection();
            Statement st = conn.createStatement();
            String sentencia ="insert into GIMNASIO_DEW.PAQUETE (NOMBRE,DESCRIPCION,COSTO,MESES) "
                    + " values ('"
                    +paquete.getNombre()+"','"
                    +paquete.getDescripcion()+"',"
                    +paquete.getCosto()+","
                    +paquete.getMeses()
                    +");";

            System.out.println("registrando paquete:"+sentencia);
            int resp = st.executeUpdate(sentencia);


            if (resp > 0) {
                //obteniendo el ultimo padre registrado
                ResultSet rs = st.executeQuery("SELECT COD_PAQUETE FROM GIMNASIO_DEW.PAQUETE order by COD_PAQUETE desc; ");

                if(rs.next()){
                    Actividad actividad;
                    cod_paquete = rs.getInt("COD_PAQUETE");
                    System.out.println("ult paquete:"+cod_paquete);

                    for (Iterator<Actividad> it = paquete.getActividad().iterator(); it.hasNext();) {
                        System.out.println("ingreso al For");

                        actividad = it.next();
                        
                        String sentenciaDetalle = "insert into GIMNASIO_DEW.DET_PAQUETE (COD_PAQUETE, COD_ACTIVIDAD ) "
                            + " values ("
                            +cod_paquete+","
                            +actividad.getCodigo()+");";

                        System.out.println("registrando det_paquete:"+sentenciaDetalle);
                        st.executeUpdate(sentenciaDetalle);

                    }                    
                }
                return cod_paquete;
            }

        } catch (SQLException ex) {
            Logger.getLogger(VentasDAOImpl.class.getName()).log(Level.SEVERE, null, ex);
        }catch (IllegalStateException iex){
            System.out.print("NOSE PUDO CONECTAR A LA BD:"+iex.getMessage());
        }
        return cod_paquete;
    }

}
